I.

이기종 의료정보시스템의 효율적인 통합을 위한

XML 기반의 미디에이터 시스템 설계 및 구현

Design and Implementation of the Mediator System based on XML for Integration of Heterogeneous Hospital Information System

Sul-Hwa Park, Heung-Shik Kim

Department of Computer Science, Inje University, Kimhae, {sulhwa., hskim}@cs.inje.ac.kr

Abstract: Because of the exploding hospital information, many hospitals use their HIS(Hospital Information System). However, since each of them uses different system and database, it is impossible to exchange data with other hospitals. In order to solve those problems, this paper suggests a mediator system, which enables data integration and exchange between heterogeneous systems. This system provides a user's interface that suits the hospital's need, and supports a web based system rather than a client/server environment to make the user more conveniently. And it presents more efficient methods of searching node and returning result by execution of XQuery through the integrated view.

Keyword: HIS, Mediator, Wrapper, XQuery

배 경

급변하는 정보화·산업화에 따른 다양한 분야의 전산화 작업이 이미 상당한 수준에 이르러 있지만, 국내의 의료분야는 폐쇄적인 의료작업의 특성상 여전히 병원 독립적인 환경을 유지하고 있다. 그러나 의료 서비스의 소비자인 국민들은 건강에 대한 관심도가 높아지고 있고,  의료와 관련된 정보욕구가 증대되고 있으며, 그에 따라 고객의 요구를 만족시키기 위한 통합의료정보 시스템의 구축과 서비스 제공의 필요성이 대두되고 있다. 또한, 다가오는 의료시장 개방에 대비한 국내 의료서비스의 질적 향상이 시급히 요구되고 있으며, 그의 일환으로 e-Hospital을 구축하기 위한 움직임이 서서히 가속화되고 있다.

국내의 현 의료시스템은 지극히 로컬 프로세스에만 국한되어 있으며, 환자중심의 어떠한 작업도 이루어지지 않고 있어서 질적으로 우수한 의료서비스를 제공하는데 한계가 있다. 또한, 각각의 병원들이 병원정보 기록을 위해 사용하고 있는 HIS(Hospital Information System) 들은 대부분 외주제작에 의해서 이루어지고 있어서 각기 다른 환경하의 다양한 HIS를 사용하고 있고, 이 경우 데이터를 공유하거나 검색하기 위해서는 모든 HIS를 동일한 제품으로 바꿔야 하는 어려움이 있다.

본 논문은 2002년도 인제대학교 학술연구조성비 보조에 의한 것임

최근 진행되고 있는 XML 기반의 미디에이터/랩퍼(Mediator/Wrapper) 구조를 통해 인터넷에 분산된 이질적이고 다양한 정보 자원을 통합하기 위한 연구는 이러한 병원정보 시스템을 통합하기 위한 적절한 대안책이 될 수 있다.[1,2]

미디에이터/랩퍼(Mediator/Wrapper) 시스템은 데이터 통합 방법론 중 하나로써 이질적이고 분산된 지역 데이터베이스의 데이터들이 물리적으로 이동하는 것이 아니라, 각 지역 데이터베이스의 내용을 가상적으로 통합한 통합뷰를 미디에이터가 제공한다. 사용자는 이 통합뷰를 통해서 질의하게 되고, 이를 위해서 각 지역 데이터베이스를 전담하는 랩퍼들이 필요하게 된다. 즉, 지역데이터 베이스 하나당 랩퍼 하나가 존재하여 지역 데이터베이스에 대한 내용을 미디에이터에게 전달하는 역할을 한다. 이때, 랩퍼가 미디에이터로 지역 데이터베이스의 내용을 전달할 때, 각기 다른 지역 데이터베이스의 스키마를 표현할 수 있는 표준모델이 필요한데, XML이 가장 적합하다.[3]

본 논문에서는 이러한 이질적인 환경하의 HIS 의 통합을 위해 XML을 표준 스키마로 사용하는 웹기반 미디에이터/랩퍼 시스템을 제안하며, 이 때 분산된 병원 어디에서나 환자 중심의 검색이 가능하고, 의료정보의 교환이 가능하며, 1·2차 진료 기관에서 3차 진료기관으로 진료를 의뢰할 경우 보다 편리한 프로세스를 제공 할 수 있게 된다.

II. 방 법

1.  시나리오 및 프로세스

이기종의 의료정보시스템을 통합하는 목적은 보다 나은 서비스를 제공하기 위함이다. 이미 국내의 많은 병원들은 각자 독립적인 HIS를 사용하여 EMR(Electronic Medical Records)등의 작업을 하고 있으며 이를 통해 나름의 의료정보화 작업을 진행하고 있다.[4] 이때 새로운 시스템을 도입하기 위해 기존의 시스템을 모두 새로 변경하거나 많은 부분을 수정해야 한다면 그로 인한 부가적인 지출 및 손실을 입게 된다.

Fig 2. 시스템 구성도

이에 본 논문이 제안하는 통합시스템은 현 의료정보 시스템의 변경을 최소화하며, 종이문서의 교환이 아닌 환자중심의 데이터 교환을 위한 인터넷 의료정보 통합을 제안한다.

현 의료시스템은 환자의 지역이동(이사, 여행, 출장 등)이 있을 경우 그 환자의 이전 정보를 제공하지 않는다. 이 경우 환자는 새로운 병원에서 진료를 받기 위해 모든 검사를 처음부터 받아야 하며, 중요 자료의 경우 이전 병원으로 직접 찾아가 종이 문서를 발급 받아 다시 새로운 병원에 제출을 해야 하는 등의 번거로움이 있다.

환자의 내원에서부터 진료까지의 과정을 시나리오로 작성하면 다음 Fig1. 과 같다. 시나리오는 응급환자의 이송이 있었을 경우, 긴급을 요하는 상황에서 환자의 병력 및 진료정보를 확인할 수 있도록 통합 미디에이터 시스템을 사용하는 경우로 도출하였다.

Fig 1. 프로세스 시나리오

2. 시스템 구성 및 실험

미디에이터를 사용해서 데이터에 접근하는 방법으로는 각 지역 DB의 랩퍼들로부터 기본 스키마를 만들어서 중앙데이터베이스로 전송한 다음 중앙에서 이들을 통합하여 통합 뷰를 만드는 방식과 일정 시간후 중앙 데이터베이스로 업데이트(폴링)시키는 방법이 있다.[5][6] 전자의 경우 모든 작업이 중앙에 집중되어 과도한 부하를 유발하며, 후자의 경우에는 지역 데이터베이스에 변경사항이 있을 경우 트리거에 의해 변경사항이 중앙 데이터베이스로 폴링하는 형태인데 이같은 경우 역시 지극히 중앙 의존적으로 부하를 유발시킨다.

본 연구는 이와 같은 방식과는 다르게 사용자 질의를 분석함으로써 필요정보를 파악하여 결과값으로 가져 통합뷰의 템플릿을 생성하여 해당 정보를 각 지역 데이터베이스로부터 찾아온 다음 통합뷰로 만들어 Reporting하고, DOM 트리를 탐색하는 세부질의를 통해 결과를 찾아준다. 본 논문에서 제안하는 시스템은 크게 사용자 인터페이스(UI:User Interface) 부분과 미디에이터 부분, 랩퍼 부분으로 나눌 수 있다.

UI(User Interface) 부분은 사용자의 질의를 입력받는 질의입력 폼(Query Input)과 사용자가 입력한 질의를 바탕으로 만든 각 지역 데이터베이스의 통합 뷰를 DOM API를 통해 로드하는 리포팅 폼(Reporting), 통합뷰를 바탕으로 사용자의 세부질의처리 결과를 보여주는 결과 폼(Result)으로 나눌 수 있다.

미디에이터 부분은 사용자로부터 입력받은 데이터 정보(Query)를 XML 스키마의 탐색이 가능하도록XQuery로 바꿔주는 QueryGenerator, XQuery로부터 통합뷰의 템플릿의 생성 및 지역 데이터베이스의 질의 결과뷰를 통합해주는 View Processor로 나눌 수 있다.

랩퍼 부분은 각 지역 데이터베이스마다 하나씩 존재하며, 지역데이터베이스로의 질의 처리를 위한 SQL 변환 및 질의결과 데이터를 XML Schema에 맞는 XML 데이터로 변환해준다.

사용자에 의해 입력된 1차 query [eqn: { Q}_{i }]는 Query Generator에 의해 Xquery [eqn: { XQ}_{i }]로 변환되고 View Processor는 [eqn: { XQ}_{i }]로부터 찾고자하는 결과값을 알 수 있으므로 뷰 템플릿 [eqn: { V}_{i }]를 생성한다. 생성된 [eqn: { V}_{i }] 정보에 맞는 데이터들을 각 지역 데이터베이스 기본 스키마에서 찾아와 통합뷰를 생성한다. 이렇게 생성된 통합뷰는 DOM API를 통해 UI 의 View 폼에 보여지게 되고 사용자는 통합뷰를 바탕으로 자유로운 세부질의(sub-query) [eqn: { Q}_{is }]를 할 수 있게 된다. 이때, 세부질의를 위해 또다시 지역 데이터베이스로부터 데이터를 통합하는 것이 아니라 DOM을 통해 메모리에 로드된 [eqn: { Q}_{i }]를 XPath를 이용해 XML의 강점인 노드탐색을 할 수 있게 되므로 효율성이 높아진다. 즉,[eqn: { Q}_{i }] 의 결과 만들어진 통합 View를 통해 세부질의를 XPath로 노드 탐색을 함으로써 보다 효율적인 검색이 가능하게 된다.

Fig 4. Schema

Fig 3. Sequence Diagram

Fig 3은 시나리오에 따른 프로세스를 시간의 흐름에 따라 추출한 Sequence Diagram 이다.

3. 실험

응급환자의 이송 시(일반 환자의 내원의 경우도 동일하다), 환자의 이전 진료정보가 시급히 요구될 때 통합시스템을 사용해서 정보를 검색할 수 있다.

Table 1. 예제 Query

SELECT PID, PNAME, HCODE, HNAME,	TDATE, DEPT

FROM	RegionDBs.진료정보Table

WHERE    PID=□환자번호□

시스템 사용자는(의사,간호사 etc.) 환자의 PID(의료보험 번호나 주민등록번호)로 환자의 정보를 검색할 수 있다. 다양한 정보의 검색이 가능하나, 본 논문에서는 환자의 최근 진료내역을 검색하는 예를 보이겠다. 환자의 최근 진료내역을 검색하기 위한 질의를 SQL로 표현하면 다음 Table 1과 같다.

Fig . Wrapper 구성도

특정환자의 진료기록을 알기 위해 위와 같은 질의를 했을 경우, 사용자가 알고자 하는 정보는 Query 의 SELECT절에 이미 명시가 되어있다. PID(의료보험코드), PNAME(환자이름), HCODE(진료기관코드), HNAME(진료기관명), DATE(진료날짜), DEPT(진료부서)이 알고자 하는 정보이며, 이를 바탕으로 뷰템플릿을 생성하여 각 지역 데이터베이스로부터 해당 정보를 찾아와 통합 View를 생성한다.

SELECT 절의 질의 인자가 각각의 구성요소가 되고, FROM 절의 대상 테이블이 하나의 속성이 된다. 예제의 RegionDBs는 불특정 지역데이터베이스를 의미한다. Fig 4는 Query 분석결과 추출한 View의 스키마이다.

미디에이터는 ViewGenerator에 의해 생성된 통합스키마의 템플릿에 맞는 정보를 지역 데이터베이스로부터 찾아온다. 지역 데이터베이스는 각각 하나의 랩퍼 시스템을 가지고, 랩퍼를 통해 관계데이터베이스의 스키마를 유지하며, 변환된 XQuery를 입력받아 관계데이터베이스에 맞는 Query로 변환하는 역할을 한다.

Fig 5는 XQuery를 지역데이터베이스의 질의로 변환하여 질의결과를 다시 XML로 변환시켜주는 Wrapper의 구성도이다. Wrapper는 XQuery를 SQL로 변환시키는 Query Processor와 지역데이터베이스의 질의 결과 튜플을 XML로 변환시켜주는 Schema와 XSLT 프로세서를 포함한다.

지역 데이터베이스로부터 질의처리가 끝난 데이터는 미디에이터에 의해 통합이 되고, 미디에이터는 통합뷰를 생성한다. Table 2는 통합뷰에 대한 XQuery이다. 이렇게 생성된 통합 뷰를 통해 사용자는 세부 질의를 수행할 수 있고, 이때 뷰트리를 탐색함으로써 결과를 찾을 수 있게 된다.

III. 결 과

이 기종 데이터베이스간의 데이터 통합을 보이기 위해 본 실험에서는 관계형 데이터베이스 Oracle 9i와 MS SQL2000

Table 2. 통합뷰의 질의 XQuery

FOR $t IN schema("Treat.xsd")/Treat/Treat_info

WHERE $t/PID='8808081144555'

RETURN

<Treat_info>

<PID>{$t/PID}</PID>

<PNAME>{$t/PNAME}</PNAME>

<TREAT>

{$t/HCODE,$t/HNAME,$t/DATE,$t/DEPT}

</TREAT>

</Treat_info>

Server를 사용하였고, 데이터의 통합 결과 생성된 통합뷰를 보이기 위해 관리자용 애플릿 프로그램을 만들었다. PID(환자 주민등록번호)로 환자의 진료내역을 검색하면, 각 지역 데이터베이스로부터 뷰 템플릿에 맞는 데이터를 찾아와 통합하여 통합뷰를 생성하여 사용자 프로그램의 리포팅폼에 보여지게 된다. 이때 DOM API를 사용하여 로드하였으며, 사용자는 통합뷰를 통해 세부 질의를 할 수 있다.

Fig 6 은 입력한 PID 의 환자에 대한 진료내역을 각 지역 데이터베이스로부터 통합하여 최근진료내역을 검색한 결과 화면이다.

Fig 6. 미디에이터 질의 결과

IV. 결 론

정보화의 가속으로 업무 모든 분야에서 자동화·전산화가 이루어지고 있고 이에 의료분야도 예외일수는 없다. 의료서비스의 질적 향상을 위해서라도 병원업무 및 환자 진료에 대한 정보화 작업이 필수불가결하다 하겠다. 그 중에서도 본 논문은 분산되고 이질적인 환경하의 각기 다른 병원 정보시스템들을 XML을 이용해 데이터의 손실없이 통합하는 방법에 대해 제안하였다.

데이터통합 방법중 하나인 Mediator를 사용해 각기 다른 환경하의 병원시스템으로부터 필요한 정보를 통합하는 예를 보였으며, 이를 통해 이기종 환경간의 병원들도 정보를 쉽게 교환할 수 있게 된다.

본 논문에서는 텍스트 위주의 데이터 교환을 연구했으나 의료영상 데이터의 교환을 위한 연구도 진행하여 완전한 의료정보통합시스템을 기대 할 수 있다.

또한, 웹기반 통합시스템으로 인해 클라이언트/서버 시스템보다 보안측면에서 고려해야 할 여지가 있으며, 이는 IC 카드를 이용한 연구가 진행되고 있다.

참고문헌

1.  S. Cluet, C. Delobel, J. Simeon, and K. Smaga, Your Mediators Need Data Conversion, ACM SIGMOD, pp.177-178, 1998

2. B. Ludascher, Y. Papakonstantinou, and P. Velikhov, Nevigation-Driven Evaluation of Virtual Mediated View, EDBT, pp.150-165, 2000

3. Myung-cheol Lee, Young-Kyoon Kim, Byoung-Seob Kim, DataBlender: Virtual Database Integration System Based on XML, Journal of Database Research, 2003; 19-27

4. Dean F. Sitting, Tejal K.Gandhi, Micheal Franklin, Masha Turetsky, Andrew J. Sussman, David G. Fairchild, David W. Bates, Anthony L. Komroff, Jonothan M. Teich., "A computer-based outpatient clinical referral system", International Journal of Medical Informatics, 1999; pp.149-158

5. Minkyung Lee, Jaeheon Cheong, Jonghoon Chun, "A Medical Integration Framework based on XML for efficient exchange and sharing of Electronic Health Record using HL7", Journal of Korean Society of Medical informatics, 2003;10, pp.769-778

6. Hyuk-Jin Jang, Sang-Wook Lee, XML Schema Mapping Agent for Clinical Information Sharing among various Hospital Information Systems 2003;5, pp.951-954